python opencv,读取彩色图像,提取三通道,图像二值化,提取图像的边缘

您所在的位置:网站首页 python 彩色输出 python opencv,读取彩色图像,提取三通道,图像二值化,提取图像的边缘

python opencv,读取彩色图像,提取三通道,图像二值化,提取图像的边缘

2023-03-14 14:16| 来源: 网络整理| 查看: 265

python opencv,读取彩色图像,提取三通道,图像二值化,提取图像的边缘

python opencv

1,读取图像

2,图像变矩阵

3,图像转灰度图像

4,彩色图像是3D数组

5,灰度图像是2D数组

6,彩色图像是3个2D数组

7,彩色图像有3个通道,提取3个通道

#Copyright ''' 熟悉opencv库 ''' import cv2 import numpy as np img=cv2.imread('D:/python_examples/mei_hua1.jpeg') '''显示彩色图像 ''' #cv2.imshow("img",img) #cv2.waitKey(0) gray=cv2.cvtColor(img,cv2.COLOR_BGR2GRAY) ''' 显示灰度图像''' #cv2.imshow("gray",gray) #cv2.waitKey(0) '''得到了图像的大小 ''' rows,cols,_=img.shape print(rows,cols) '''初始化一个大小一样的图像,元素初始化为0 ''' created=np.zeros((rows,cols)) ''' for in 语句,遍历数组,但不能修改数组''' for i in img: for j in i: #print(j) pass '''给数组赋值 ''' for i in range(0,rows): for j in range(0,cols): created[i,j]=img[i,j,2]#第三个参数,可以是0,1,2分别表示3个通道 print(created.shape)#创建的图像大小 '''必须加这一条语句,否则无法正确显示图像 ''' created=created.astype(np.uint8)#转换类型,才能正确的显示图像 cv2.imshow('created',created) cv2.imwrite('D:/python_examples/created.jpg',created) cv2.waitKey(0)

通道0

通道1

通道2

总结:

1个彩色图像,可以分解为3个灰度图像

3个灰度图像合起来是一个彩色图像

通道2图像,观察到花很白。如果

图像很白,说明对应的像素值大。

所以,做一个二值处理。

当像素值大于180,显示255

当像素值小于等于180,显示为0

created[created>180]=255 created[created

这个图像就是2值图像。

什么是2值图像,就是里面只有黑和白。

通道3变成了2值图像以后,有什么变化。

在通道3,

看到有花,有枝条,有朦胧的一个背景。

在二值图像,

就看到了花。

花尾巴部分,变成了白色,原来是灰色。

枝条没有了。

朦胧的背景也没有了

所以,二值图像,消除了枝条。

消除了朦胧的背景。

只显示了我们关心的花。

仔细观察图像变化,很重要!

对于二值图像,显示边缘。

什么是边缘。

举例:

000011100

左边连续的0,都是黑

所以0-0=0

右边-左边

01

左边是0,右边是1

这里就是边缘了

右边-左边=1

111连续的1,都是白色

10

这里是边缘,因为从1变0

00

都是黑

按照这个道理。

修改二值图像,提取边缘

for i in range(0,rows): for j in range(0,cols-1): #created[i,j]=created[i,j+1]-created[i,j]# 0-0 255-255 255-0 0-255 if(created[i,j+1]

现在图像里面,只有一些白色的线条。

白色的面积小了很多了。

而且这些白色线条,组成了花的轮廓。

for i in range(0,rows): for j in range(0,cols-1): #created[i,j]=created[i,j+1]-created[i,j]# 0-0 255-255 255-0 0-255 if(created[i,j+1]>=created[i,j]): created[i,j]=0 else: created[i,j]=255

读者可以更换其他图像试试,看看效果

总结:

对图像处理的步骤

1,彩色图像

2,提取3个通道

3,把第三通道的图像做二值化,阈值自己可以调整的

4,把二值化图像,提取了边缘



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3